package net.xdclass.config;

import io.minio.MinioClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;


/**
 * MinIo配置类，用于定义与MinIo服务器交互所需的配置信息
 */
@Data
@Component
@ConfigurationProperties(prefix = "minio")
public class MinIoConfig {

    /**
     * MinIo服务器的endpoint地址
     */
    private String endpoint;

    /**
     * 访问MinIo服务器的访问密钥
     */
    private String accessKey;

    /**
     * 访问MinIo服务器的密钥
     */
    private String secretKey;

    /**
     * 在MinIo服务器上使用的存储桶名称
     */
    private String bucketName;

    /**
     * 创建MinIo客户端实例
     *
     * @return MinioClient实例，用于与MinIo服务器进行交互
     */
    @Bean
    public MinioClient minioClient() {
        return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();
    }
}

